Discrete-time system and method for induction motor control

ABSTRACT

A simple and robust discrete-time induction motor control technique employs a control algorithm that estimates load torque and rotor resistance from the measured rotor velocity of the motor to be controlled. The estimates of load torque and rotor resistance are employed to generate periodic estimates of parameters that are employed to control first and second harmonic signal generators. A switch controls which of the signal generators supplies a control signal to the motor at any given moment. The two signal generators work in turn such that while one produces the motor control signal, the other one is being readjusted to the new set of parameters by the parameter controller. The control method can be considered as a generalization and modification of Field Oriented Control. In a “non-adaptive” modification, it ensures global exponential stability of a closed-loop system, if at least local stabilization of the system by static control is possible, for given parameter estimates. In an adaptive version, it provides identification and global exponential stabilization of the system.

PRIORITY CLAIM UNDER 35 U.S.C. 119 (e)

[0001] This application claims the benefit, under 35 U.S.C. 11 9(e), of U.S. Provisional Application No. 60/208,042, filed May 31, 2000.

BACKGROUND OF THE INVENTION

[0002] 1. Field of the Invention

[0003] The present invention relates in general to a control technique for regulating velocity and rotor flux of an induction motor. The rotor flux is assumed unmeasurable, load torque and rotor resistance may be unknown and time-varying, with small non-differentiable disturbances present. A simple and robust discrete-time control technique is employed that can be considered as a generalization and modification of Field Oriented Control.

[0004] 2. Description of the Background Art

[0005] The problem of control of an induction motor has been under active investigation in recent years. It is motivated by numerous industrial applications and presents a challenging control problem. The dynamic model of the system is non-linear; two of the state variables (rotor flux) are usually not measurable as it is difficult and costly to measure them. and, due to ohmic heating, the rotor resistance varies considerably with corresponding significant effects on dynamics of the system. In particular, as the rotor resistance slowly varies, small but non-differentiable disturbances may be present in control and observation channels. “Indirect Field-Oriented Control” is considered as the most advanced up-to-date induction motor control technique. While there exist different methods to identify the induction control parameters—rotor resistance and load torque—in the frame of Indirect Field-Oriented Control, these methods are rather complicated and need significant amount of calculations, which makes difficult or costly to use them on-line. Besides, these techniques are somewhat auxiliary to the core Indirect Field-Oriented Control algorithm.

SUMMARY OF THE INVENTION

[0006] The present invention provides a system and method for controlling an induction motor that employs a new control algorithm. The main differences from the conventional known control technique are the following. First, the control is very simple to implement, much cheaper and simpler than “Indirect Field-Oriented Control.” Second, it is more accurate and robust. Third, it includes identification of the induction control parameters - rotor resistance and load torque. At the same time, identification of these parameters is performed in a natural and straightforward manner. As numerical simulations have shown, the algorithm presents an excellent performance even in very complex control situation (tight restrictions on control signal, instant changes of the motor parameters). Together with other advantages, the it makes the suggested algorithm far excelling any other existing control technique for induction motor.

[0007] The method of the present invention that implements the subject algorithm operates in the following manner. First, the rotor velocity of an induction motor to be controlled is measured and used with specific equations to estimate the present values of the rotor resistance and load torque. Preferably, a “Least-Square” optimization method is employed to solve the equations and determine these values, although any other suitable method could also be employed. Next, the estimates of rotor resistance and load torque are employed to calculate the values of three constants (amplitude, frequency and phase) to control a pair of harmonic signal generators that each generate a motor control signal. A switch is provided that alternates between first applying the control signal from the first generator to the motor, and then applying the control signal from the second generator to the motor. A parameter controller operates in conjunction with the switch in such a manner that updates of the parameters are only applied to the one of the signal generators that is not currently applying its control signal to the motor so that the two signal generators and work in turn. While one produces the control signal that is fed to the motor, the other one is being readjusted to the new set of parameters by the parameter controller. Then, at discrete time periods, the switch changes its position, and the one of the generators which was being readjusted, becomes the “working” one, and vice versa. The intervals between switches are regular and made as short as necessary to allow readjustment of the generators, which need some small time after the constants are set, to reach the “working regime” and, possibly, other necessary time expenses.

[0008] In a modification of the invention that is applicable if the load torque of the motor is known to be negligibly small, the parameter controller is not needed. Instead, the switch works not at regular time periods, but at the moments when the deviation of measured rotor velocity from the desirable value exceeds some fixed value.

BRIEF DESCRIPTION OF THE DRAWINGS

[0009] The features and advantages of the present invention will become apparent from the following detailed description of a preferred embodiment thereof, taken in conjunction with the accompanying drawings, in which:

[0010]FIG. 1 is a schematic block diagram illustrating an induction motor control system that is constructed in accordance with a preferred embodiment of the invention;

[0011] FIGS. 2A-2D are graphs showing values as a function of time of four motor parameters during experiments to test the effectiveness of the control algorithm of the present invention, these parameters being load torque, rotor resistance, flux norm and rotor velocity, respectively;

[0012]FIG. 3 is a table showing the experimental results of speed and flux values for six different experiments;

[0013]FIG. 4A-4D are graphs depicting experimental results, with FIGS. 4A, 4B and 4D showing rotor flux and velocity as a function of time for experiment numbers 1, 2 and 6, respectively, and FIG. 4B showing motor voltage and current as a finction of time for experiment number 1;

[0014] to FIG. 5 is a graph depicting rotor trajectory as a function of time in a seventh experiment designed to track the rotor trajectory and minimize least-square deviation of |x (t)| from β; and

[0015]FIG. 6 is a graph depicting rotor position and flux as a function of time for another experiment.

DETAILED DESCRIPTION OF A PREFERRED EMBODIMENT

[0016] 1. Problem Formulation

[0017] To understand the theory behind the novel control algorithm that is employed in the preferred embodiment of the present invention, the dynamic model of a current fed induction motor needs to be considered first. In its simplest formulation, with disturbances added to all channels, the model takes the form: $\begin{matrix} {{\overset{.}{x} = {{Rx} + {Ru} + \xi_{1}}},} & (1) \\ {{\overset{.}{y} = {{u^{T}{Jx}} - \tau + \xi_{2}}},} & (2) \\ {{\hat{y} = {y + \xi_{3}}},} & (3) \end{matrix}$

[0018] where $x = {\begin{bmatrix} x_{1} \\ x_{2} \end{bmatrix}\varepsilon \quad {IR}^{2}}$

[0019] is the rotor flux vector $u = {\begin{bmatrix} u_{1} \\ u_{2} \end{bmatrix}\varepsilon \quad {IR}^{2}}$

[0020] are the stator currents, τ is the load torque, R is the rotor resistance, y and ŷ

[0021] are the true and measured rotor velocity respectively, ξ₁, ξ₂, ξ₃ are non-differentiable, nonmeasurable disturbances, $J = {\begin{bmatrix} 0 & {- 1} \\ 1 & 0 \end{bmatrix}.}$

[0022] The values of R and τ may be unknown.

[0023] To simplify the expressions below, and without loss of generality for the purposes of this analysis, all motor parameters have been set to unity except rotor resistance and load torque.

[0024] One goal of the subject invention's control algorithm is to provide global exponential stability of a closed-loop system within some accuracy δ=δ(δ₁, δ₂, δ₃):

||x(t)|−β|<K _(x) ||x(O)|+C|e ^(−vt) +O(δ),   (4)

|y(t)−d|<K _(y) |y(O)−d|e ^(−vt) +O(δ),   (5)

[0025] where d and β are desired values of rotor velocity and flux norm respectively, t ∈ [0, ∞), K_(x), K_(y), C, v are positive constants.

[0026] Assumption The disturbances ξ₁, ξ₂, ξ₃, are supposed to be bounded by some small known constants such that:

|ξ₁|<δ₁, |ξ₂|<δ₂, |ξ₃|<δ₃.   (6)

[0027] In particular we assume max (δ₁/Rβ, δ₂/β²)<<1.

[0028] Note that the algorithm below is applicable as well if the disturbances are unbounded stochastic processes with zero mean and small dispersion.

[0029] The remaining of the detailed description is organized as follows. In the next section, it is shown that, if load torque is not negligible, identification of the value of rotor resistance is required for any static control. The section also discusses limitation of robustness of Indirect Field Oriented Control. In Section 3, the main idea of the subject control method is briefly described, then presented formally its exponential stability is proven. In Section 4, the particular case of small load torque is considered, and robust non-adaptive modification of the subject algorithm is presented. An exemplary implementation of the invention is discussed in Section 5 with reference to FIG. 1. Section 6 is devoted to the results of a numerical simulation that was conducted to verify. The proofs of all Lemmae and Theorems are presented in the Appendix at the end of the description.

[0030] 2. Limitations on Robustness and Necessity of Identification

[0031] The subject control algorithm is adaptive, i.e. it includes an identification block for the parameters R, τ. The following Lemma shows that such identification is unavoidable for any static control algorithm.

[0032] Lemma 1 Let δ=0. If two systems of the form (1)-(2) with different pairs of parameters (R₁,τ₁)≠(R₁,τ₂) can be locally stabilized by the same control of the form u=u (x, y), that is, if the condition $\begin{matrix} {{{\lim\limits_{t->\infty}{y(t)}} = d},{{\lim\limits_{t->\infty}{{x(t)}}} = \beta}} & (7) \end{matrix}$

[0033] is providedfor the both systems, then τ₁=τ₂=0.

[0034] We see that Lemma 1 allows the control algorithm to use exact values of rotor flux x. Thus, even direct measurability of rotor flux (which is not the case usually) can not eliminate the necessity of parameter estimation unless load torque is negligible.

[0035] Now, let us consider Indirect Field-Oriented Control—the most popular up-to-date technique for regulation of an induction motor: $\begin{matrix} {{u = {e^{Jp}\begin{bmatrix} \beta \\ {\tau \quad {d/\beta}} \end{bmatrix}}},{\overset{.}{p} = {\frac{\hat{R}}{\beta^{2}}\tau \quad d}},} & (8) \end{matrix}$

τ_(d)=−(Kp+p ⁻¹ K _(I))(y−d).   (9)

[0036] where K_(p), K_(I) are some constants, p=d/dt. Technically speaking, the control (8)-(9) does not satisfy the assumption of Lemma 1 as it uses the dynamical variable p. However, the same deduction is applicable to it:

[0037] Lemma 2 Let δ=0. If {circumflex over (R)}≠R, τ≠0, then the control algorithm (8)-(9) cannot provide the condition (7) for the system (1)-(2) even locally.

[0038] The Lemma 2 does not contradict the fact that the Indirect Field-Oriented Control stabilizes the system (1)-(2); however, it states that the equilibrium depends on {circumflex over (R)}, τ. Therefore, the control objective will not be fulfilled if {circumflex over (R)}≠R.

[0039] We see that most of the known control algorithms for the system (1)-(2) can be robust only if τ is negligible. It will be shown that, in this case, our control is robust, that is, the control objective (4)-(5) is provided without estimation of the rotor resistance R.

[0040] 3. Control Algorithm

[0041] In this section we present a new control algorithm for solving the problem (4), (5). We call it Harmonic Control for reasons clear from its formula below.

[0042] The main idea of the algorithm may be described as follows. Let us consider a disturbance-free case: ξ₁=ξ₂=ξ₁=0. When the motor reaches its desirable regime x²=β², y=d, system dynamics (1)-(2) imply (see Proof of Lemma 1) that

u(t)=(I+(τ/β²)J)x(t),

x(t)=(Rτ/β ²)Jx(t).

[0043] Thus both x and u have the form $\begin{matrix} {{x = {\beta \begin{bmatrix} {\cos \left( {{\omega_{i}t} + \sigma_{x}} \right)} \\ {\sin \left( {{\omega_{i}t} + \sigma_{x}} \right)} \end{bmatrix}}},{\omega_{i} = {{R\tau}/\beta^{2}}},{u = {\beta {{\sqrt{1 + {\omega_{i}^{2}/R^{2}}}\begin{bmatrix} {\cos \left( {{\omega_{i}t} + \sigma_{u}} \right)} \\ {\sin \left( {{\omega_{i}t} + \sigma_{u}} \right)} \end{bmatrix}}.}}}} & (10) \end{matrix}$

[0044] Moreover, if we define u in the form (10) then x², x^(T) u will exponentially converge to desirable values β, τ accordingly. To provide a desirable value of y as well, we only need to increase or decrease ω₁ for a limited period of time.

[0045] Our control algorithm can be considered as discrete-time one: like any discrete-time algorithm, it checks the output and sets a new control once in some “time step” Δt; however, the control is not piecewise-constant but “piecewise-harmonic”: $\begin{matrix} {{{u(t)} = {v_{i}\begin{bmatrix} {\cos \left( {{\omega_{i}\left( {t - t_{i}} \right)} + \sigma_{i}} \right)} \\ {\sin \left( {{\omega_{i}\left( {t - t_{i}} \right)} + \sigma_{i}} \right)} \end{bmatrix}}},\begin{matrix} {t\quad {\varepsilon \left\lbrack {t_{i},t_{i + 1}} \right\rbrack}} \\ {{i\quad \varepsilon \quad N},} \end{matrix}} & (11) \end{matrix}$

[0046] where v₁, w₁, t₁, σ₁ are piecewise-constant scalar parameters of the control algorithm, defined by: $\begin{matrix} {{t_{1} = 0},\quad {{t_{i + 1} = {t_{i} + {\Delta \quad t}}};\quad {i = 1}},\ldots \quad,{{\omega_{i}\frac{\hat{R\hat{\tau}}}{\beta^{2}}} + \left\{ {\begin{matrix} \omega_{+ ,} \\ {0,} \\ {{\omega\_},} \end{matrix}\begin{matrix} {\quad {{{{if}\quad \hat{y}} < {d - ɛ}},}} \\ {{{\quad {{{if}\quad {\hat{y}}} - d}} \leq ɛ},} \\ {{otherwise},} \end{matrix}} \right.}} & (12) \\ {v_{i} = {\beta \sqrt{\left( {1 + {\omega_{i}^{2}/{\hat{R}}^{2}}} \right);}}} & (13) \\ {\sigma_{i} = {\sigma_{i - 1} + {\omega_{i - 1}\left( {t_{i} - t_{i - 1}} \right)} + {\arcsin \frac{\omega_{i}}{\sqrt{{\hat{R}}^{2} + \omega_{i}^{2}}}} - {\arcsin {\frac{\omega_{i - 1}}{\sqrt{{\hat{R}}^{2} + \omega_{i - 1}^{2}}}.}}}} & (14) \end{matrix}$

[0047] Here {circumflex over (R)}, {circumflex over (τ)} are estimates of the parameters R, τ accordingly, ω+ω_ are positive control parameters chosen by the user from engineering reasons, Δt is “time step”. The greater that the parameters ω₊, ω⁻ are, the faster the rotor speed achieves the desirable value, but the greater the “transfer” values of currents and voltages that are needed.

[0048] The proposed control, as defined by equations (1 l)-(14), is piecewise-continuous. This seemingly contradicts the fact that real motor currents are continuous. To implement the control (11)-(14), we must simulate “jumps” of ω (say, from ω₊ to {circumflex over (R)} {circumflex over (τ)}/β²) and corresponding “jumps” of υ, σ by fast but gradual changes (relationships (13), (14) must hold all of the time). We will see below that this modification does not alter the properties of Harmonic Control.

[0049] The identification algorithm for {circumflex over (R)}, {circumflex over (τ)} is based on the following Lemma.

[0050] Lemma 3 For any i ∈ N, τ ∈ [t_(l), t₁], the system (1)-(3), (14) s atisfies the conditions: $\begin{matrix} {{x(t)} = {{e^{- {R{({t - t_{i}})}}}x_{i}} + {\int_{t_{i}}^{t}{e^{- {R{({t - s})}}}{\xi_{1}(s)}{s}}} + {\frac{{Rv}_{i}}{R^{2} + \omega_{i}^{2}}\begin{bmatrix} {{R\quad \cos \quad {\alpha_{i}(t)}} + {\omega_{i}\sin \quad {\alpha_{i}(t)}}} \\ {{R\quad \sin \quad {\alpha_{i}(t)}} - {\omega_{i}\cos \quad {\alpha_{i}(t)}}} \end{bmatrix}}}} & (15) \\ {{{y(t)} = {{\frac{- v_{i}}{R^{2} + \omega_{i}^{2}}\left( {{e^{- {R{({t - t_{i}})}}}{q_{i}\left( {t,R} \right)}} - {q_{i}\left( {t_{i},R} \right)}} \right)^{T}x_{i}} + {\hat{y}\left( t_{i} \right)} + {\left( {\frac{{Rv}_{i}^{2}\omega_{i}}{R^{2} + \omega_{i}^{2}} - \tau} \right)\left( {t - t_{i}} \right)} + {\xi (t)}}}{{{{where}\quad {\alpha_{i}(t)}} = {{\omega_{i}\left( {t - t_{i}} \right)} + \sigma_{i}}},}} & (16) \\ {{{q_{i}\left( {t,R} \right)} = \begin{bmatrix} {{\omega_{i}\cos \quad {\alpha_{i}(t)}} + {R\quad \sin \quad {\alpha_{i}(t)}}} \\ {{{- R}\quad \cos \quad {\alpha_{i}(t)}} + {\omega_{i}\sin \quad {\alpha_{i}(t)}}} \end{bmatrix}}{x_{i} = {{x\left( t_{i} \right)} - {\frac{{Rv}_{i}}{R^{2} + \omega_{i}^{2}}\begin{bmatrix} {{R\quad \cos \quad {\sigma_{i}(t)}} + {\omega_{i}\sin \quad {\sigma_{i}(t)}}} \\ {{R\quad \sin \quad {\sigma_{i}(t)}} - {\omega_{i}\cos \quad {\sigma_{i}(t)}}} \end{bmatrix}}}}{{\xi (t)}\quad {is}\quad {some}\quad {disturbance}{\quad \quad}{such}\quad {that}}{{{{\xi (t)}} \leq {\delta \left( {t - t_{i}} \right)}},\quad {{\delta (t)} = {{{\delta_{2}t} + {v_{i}\delta_{1}t} + {\delta_{3,}\quad t}} \geq 0.}}}} & (17) \end{matrix}$

[0051] Estimates {circumflex over (R)}, {circumflex over (τ)} now can be obtained on-line from (3), (16) by the Least-Square fit. After a number of successive “time steps” t_(l) . . . , t_(l+k) when the values of the parameters υ, ω were kept constant, we can define $\begin{matrix} {{\left( {\hat{R},\hat{\tau},{\hat{x}}_{i}} \right) = {\arg \quad {\min_{R,\tau,x}{\sum\limits_{j = 1}^{N}{f^{2}\left( {s_{j},R,\tau,x} \right)}}}}},} & (18) \end{matrix}$

[0052] where s₁, . . . , s_(N) are moments on the interval [t_(l), t_(l+k)] when samples of ŷ were taken, ${f\left( {s,R,\tau,x_{i}} \right)} = {{y(s)} - {\hat{y}\left( t_{i} \right)} - {\left( {\frac{{Rv}_{i}^{2}\omega_{i}}{R^{2} + \omega_{i}^{2}} - \tau} \right)\left( {s - t_{i}} \right)} + {\frac{v_{i}}{R^{2} + \omega_{i}^{2}}\left( {{e^{- {R{({s - t_{i}})}}}{q_{i}\left( {s,R} \right)}} - {q_{i}\left( {t_{i},R} \right)}} \right)^{T}{x_{i}.}}}$

[0053] Notice that the function ƒ is linear with respect to τ, x thus (18) is equivalent to minimization of some scalar function.

[0054] It can be shown that the estimates obtained by (18) are numerically stable; however accurate estimation of R is possible only if ω becomes negligible too as soon as the desirable value of d is achieved. Fortunately, in that case, we do not need to estimate R, which is shown in the next section.

[0055] It follows from Lemma 1, that, if τ is not negligible, then an identification block should be used anyway. Thus we suppose that, when the i^(th) step is completed, the identification block provides

|τ−{circumflex over (τ)}|≦O(δ_(id)),

|R−{circumflex over (R)}|≦O(δ_(id)),   (19)

[0056] where δ_(id) is the identification error. If we use the Least-Square estimation method, δ_(id) should have an order O(δ(Δτ)); if the parameters R, τ are known, then of course δ_(id)=0.

[0057] Theorem 4 If the conditions (19) are valid and ω₊,ω⁻ are big enough, then

||x(t)|−β|<|x ₁ |e ^(−Rt) +O(δ_(id)+δ₁ Δt), | y(t)−d|<∈+δ ₃ +O(Δt).

[0058] Now we see why replacing “jumps” of ω, υ by fast changes cannot affect closed-loop stability. Such a period of “transfer” from one control regime to another should be relatively short, and identification of R, τ can be turned off during this time without violating (19). From the proof of Theorem 4 we see that, as long as ω−Rh/β² has the correct sign and υ, σ satisfy (13)-(14)—which is the case—the values |x|, y converge to β, d, respectively.

[0059] We also see that the parameters R, τ may vary slowly in time: if their drift has order O(δ_(id)) per unit time then the identification block will modify the estimates {circumflex over (R)}, {circumflex over (τ)} and still will provide (19).

[0060] We can easily derive a continuous-time form of our algorithm by setting Δt “infinitely small” and generalizing the formula (12) for a. We obtain: $\begin{matrix} {{{{u(t)} = {\beta {\sqrt{1 + {{\omega^{2}(t)}/{\hat{R}}^{2}}}\begin{bmatrix} {\cos \left( {\sigma (t)} \right)} \\ {\sin \left( {\sigma (t)} \right)} \end{bmatrix}}}},{{{\sigma (t)} = {{{\hat{\left( R \right.}/\sqrt{\left. {{\hat{R}}^{2} + {\omega^{2}(t)}} \right)}}{\omega (t)}} + {\omega (t)}}};}}{{{\omega (t)} = {F\left( {\hat{y} - d} \right)}},\quad {t \geq 0}}} & (20) \end{matrix}$

[0061] where F is some function, which will provide vanishing of |y−d|—for example, (I12). Now, if we denote: ${\rho = {\sigma - {{arc}\quad \sin \frac{\omega}{\sqrt{{\hat{R}}^{2} + \omega^{2}}}}}},\quad {\tau_{d} = {\frac{\omega}{\hat{R}}\beta^{2}}},$

[0062] we obtain the formula of Indirect Field-Oriented Control (8). The definition (9) is just another possible variant for the function F.

[0063] A closed-looped system with continuous-time control (20) also satisfies Lemma 3 and Theorem 4 as no limitation was imposed on the value of Δτ. It means that estimation (18) of motor parameters is still applicable as long as parameter ω is kept constant for some time. It also implies stability of the closed-looped system for the control (20), (12).

[0064] It should be noted that this approach—via discrete-time form of the control—may be a convenient tool for analysis of stability properties of Indirect Field-Oriented Control and its modifications.

[0065] In conclusion to the section, let us note that Lemma 3 gives us a tool not only for estimation of the parameters R, τ but also for the prediction vector x(t_(l)) and trajectory x(t), t ∈ [t_(l), t_(i+l)]. Based on this predictor, the control for the next time interval can be calculated in advance. If we have two simple generators of harmonic signals, one generator can provide a motor control input signal, while the other can be adjusted to the values υ_(l+1), ω_(l+1), σ_(l+1); then at the moment t_(l+1) they are switched. By this way any delay in control can be avoided. A detailed discussion of such an implementation is provide in Section 5.

[0066] 4. Small Load Torque

[0067] Now consider the case when the value τ of load torque is small and bounded by a small known constant δ_(τ). In this situation, Lemmae 1,2 are not applicable, hence the possibility of robust control cannot be ruled out. Indeed, we can slightly modify the control algorithm (11)-(14) such that for small τ global stability of a closed-loop system can be achieved without parameter identification.

[0068] Let the control still have the form (11) but the parameters υ_(l), ω_(l), τ_(l), σ_(l) be defined, instead of (12)-(14), by the following formulae: t_(2i) = min {t > t_(2i − 1)/ŷ = d};  t₁ = 0 t_(2i + 1) = min {t > t_(2i)/ŷ − d = ɛ};  i ∈ N; $\begin{matrix} {\omega_{i} = \left\{ {{{\begin{matrix} {{{{sign}\left( {d - {\hat{y}\left( t_{i} \right)}} \right)}\omega_{0}},} & {{{{if}\quad i} = 1},} \\ {0,} & {{{if}\quad i\quad {is}\quad {even}},} \\ {{{{sign}\left( {d - {\hat{y}\left( t_{i} \right)}} \right)}\omega_{*}},} & {{otherwise};} \end{matrix}\sigma_{i}} = {{{\omega_{i - 1}\left( {t_{i} - t_{i - 1}} \right)} + {\sigma_{{i - 1},}\quad \sigma_{1}}} = 0}};{v_{i} = \left\{ \begin{matrix} {{\frac{\sqrt{{\hat{R}}_{0}^{2} + \omega_{0}^{2}}}{{\hat{R}}_{0}}\beta},} & {{{{if}\quad i} = 1},} \\ \beta & {{otherwise}.} \end{matrix} \right.}} \right.} & (21) \end{matrix}$

[0069] The parameters {circumflex over (R)}₀, ω₀, ω_(*), ∈ should be chosen by the user within the range: ɛ > 0;  R_(min) ≤ R̂ ≤ R_(max); $\begin{matrix} {{{\omega_{0} \geq {\frac{R_{\max}}{\beta^{2}}\left( \frac{{\hat{R}}_{0}}{R_{\min}} \right)^{2}\tau}};}{{\frac{2\left( {\delta_{2} + \tau} \right)}{\beta_{2} + \sqrt{\beta^{4} - {4\left( {\delta_{2} + \tau} \right)^{2}}}}R_{\max}} \leq \omega_{*} \leq {\frac{2}{3\quad {in}\quad 3}{R_{\min}.}}}} & (22) \end{matrix}$

[0070] where R_(min), R_(max) are known lower and upper bounds for R respectively.

[0071] The control works as follows: the first “step” [t₁, t₂] brings both |x| and y in a neighborhood off β and d accordingly. Then at even “steps” [t_(2i), t_(2i+1)] the value ||x|−β| decreases exponentially to the level δ₁ while |y−d| changes with a speed not exceeding τ+δ₂. At odd “steps” the value |y−d| decreases linearly to the level δ₃ while |x| stays in some O(ω_(*)) neighborhood off β. The following theorem gives a formal statement:

[0072] Theorem 5 Let the conditions (22) hold. Then the closed loop system (1)-(3), (11), (21) is satisfied to the conditions: $\begin{matrix} {{{{{{x(t)}} - \beta}} \leq {{{{{{x(0)}} + C}}e^{- {Rt}}} + \frac{2{\beta\omega}_{*}}{\sqrt{R^{2} + \omega_{*}^{2}}} + \delta_{1}}},} & (23) \\ {{{{y - d}} \leq {ɛ + \delta_{3}}},} & (24) \end{matrix}$

[0073] where C is some constant depending on β, {circumflex over (R)}₀, ω_(o).

[0074] The meaning of the parameters ω_(*), ∈ is clear from the Theorem 5: they define the accuracy of the limit regime of the motor. However they also have another function: the smaller ω_(*) is, the slower y drives to d at even “steps”; the smaller ε the more rarely |x| gets chances to get closer to β than guaranteed boundaries (23). Thus the choice of parameters ∈, ω_(*) is a tradeoff. We recommend to choose ∈≧δ₃. The parameter {circumflex over (R)}₀ is just an initial estimate of R; ω₀ is to be chosen as large as practically reasonable.

[0075] Naturally, not only the first “step” [t₁, t₂] but several first “steps” can be made to bring |x|, y closer to β, d. For this purpose we should update the estimate {circumflex over (R)} and choose the parameters of the control (11) as ω=ω₀, $v = {\frac{\sqrt{{\hat{R}}^{2} + \omega_{0}}}{\hat{R}}{\beta.}}$

[0076] Obviously, the statement of Theorem 5 is still valid in this case.

[0077] Notice the control (21) after the first “step” is continuous and piecewise-differentiable.

[0078] 5. Exemplary Implementation

[0079] With reference to FIG. 1, a motor control system 10 is illustrated that is constructed in accordance with the preferred embodiment of the invention. The control system 10 controls operation of an induction motor 12 in response to a measured rotor velocity signal ŷ received from the motor 12. The rotor velocity signal ŷ is input to a parameter estimator 14 that uses this value and the current values of β, ω, σ with equation (16) to generate (e.g., using a software-based algorithm) estimates of the rotor resistance R and load torque τ. There are several ways that this can be done; the simplest is to use the “Least-Square” optimization method as discussed previously.

[0080] After the estimates of rotor resistance R and load torque rare generated, they are fed to a parameter controller 16 that uses the estimates with equations (12)-(14) to calculate the parameters δ, ω, σ (again, using a software-based algorithm, for example). These parameter values are then fed to first and second conventional harmonic signal generators 18 and 20, each of which employ the constants β, ω, σ to generate a two-component harmonic control signal, μ₁ and μ₂, respectively. The components of μ₁ and μ₂ are β sin(ωt+σ) and β cos(ωt+σ). A switch 22 is provided to apply either μ₁ or μ₂ as the motor control signal μ.

[0081] The control system 10 works as follows. The rotor velocity of the motor 10 is continually measured and applied to the parameter estimator 14, which generates the estimates of load torque and rotor resistance using equation (16). The estimates of load torque and rotor resistance are then applied to the parameter controller 16, which periodically generates values for the parameters and applies them to the first and second control signal generators 18 and 20. The parameter controller 16 operates in conjunction with the switch 22 in such a manner that updates of the parameters are only applied to the one of the signal generators 18 or 20 that is not currently applying its control signal to the motor 12. In other words, the two signal generators 18 and 20 work in turn. While one produces the signal μ which is fed to the motor 12, the other one is being readjusted to the new set of parameters by the parameter controller 16. Then, at discrete time periods t_(l), the switch 22 changes its position, and the one of the generators 18 and 20 which was being readjusted, becomes the “working” one, and vice versa. The intervals between switches are regular and made as short as necessary to allow readjustment of the generators, which need some small time after the constants β, ω, σ are set, to reach the “working regime” and, possibly, other necessary time expenses (for example, the delays which may be caused by the parameter controller 16 and parameter estimator 14).

[0082] If the load torque r of the motor is known to be negligibly small, the control modification described in Section 4 can be used. In such case the parameter controller 16 is not needed. Instead, the switch 22 works not at regular time periods, but at the moments when the deviation of measured rotor velocity from the desirable value exceeds some fixed value ε.

[0083] 6. Numerical Simulations

[0084] The quality of the control algorithm that forms the heart of the invention was checked by a number of numerical simulations. As a base for these simulations, a benchmark model disclosed in “A Benchmark for Induction Motor Control” by R. Ortega et al. was used which is a classical induction motor model with the following parameter values:

[0085] Stator Inductance (L_(s))-0.47H

[0086] Rotor Inductance (Lp_(s))-0.47H

[0087] Mutual Inductance (L_(sr))-0.44H

[0088] Total Leakage Factor (σ)-0.12

[0089] Stator Resistance (R_(s))-8.0 Ohms

[0090] Rotor Resistance (R_(r))-3.6 Ohms

[0091] Moment of Inertia (D_(m))-0.06Kg-m²

[0092] Number of Pole Pairs (n_(p))-2

[0093] When the equations set forth in Ortega et al. are transformed in the form (1), (2), the parameters of the model take the nominal values:

τ=L _(r)τ_(L) /n _(p)=1.645N−m−H, R=R _(r) /L _(r)=7.66 Ω/H, d=D _(m) L _(r)ω_(nom) /np= _(1.034Kg−m) ² _(H/sec, β=)1.14Wb.  (25)

[0094] Further, we will refer the values (25) as “nominal” values R_(nom), τ_(nom), d_(nom), β_(nom).

[0095] In all experiments rotor flux was assumed to be unmeasurable. Disturbances ξ₁, ξ₂, ξ₃ were simulated as random Gaussian signals with dispersions σ₁, σ₂, σ₃ accordingly. In addition, the following modifications of the control algorithm (11)-(14) were assumed:

[0096] 1. When value β changed instantly, in the formula (13), we used an “approximate” value off β, which changed gradually.

[0097] 2. Instant changes of d were taken into account in advance, and the control changed a little bit earlier than they actually occurred.

[0098] 3. The equation (12) was slightly modified so that the value of ω did not “jump” instantly but started to grow or decrease gradually. Then it slowed down just before reaching {circumflex over (R)} {circumflex over (τ)}/β².

[0099] Each time, the machine started with all initial conditions equal to zero, and worked for 10 seconds. The values of stator currents and voltages during the experiments were computed using formulae from Ortega et al. In the experiments when τ was unknown, the initial estimate of it was equal to τ_(nom), while the true initial value of the parameters was 0.5 τ_(nom).

[0100] In all but one experiment, the control objective was to track given time-varying values of d, β. The parameters R, τ were also non-stationary. Dependence of reference parameters on time is shown on FIGS. 2A-2D. We experimented combining the following settings:

[0101] Parameter τ is known/unknown;

[0102] Parameter R is known/unknown;

[0103] Noise dispersions (σ₁=σ₂=0/σ₁=σ₂=0.1 (in corresponding units);

[0104] Noise dispersion σ₃=0 Kg−m²−H/sec/σ₃=0.1 Kg.m²−H/sec;

[0105] For this control objective, six experiments were conducted. Their results—maximal and mean square values of errors ||x|−β|, |y−d|, as well as those of currents and voltages are presented in the table of FIG. 3. FIGS. 4A, 4C and 4D shows dependence of |x|, y on time for experiments 1, 2 and 6, respectively, while FIG. 4B is a graph of currents and voltages versus time for experiment 1. We can see that the subject invention's algorithm reliably provides tracking of β(t), d(t). In experiments 3 and 6, a decrease of y after 6 sec slowed down too early because the control system got confused either by an inaccurate estimate of τ or by disturbed measurements of y; but in both cases y was brought back on desirable trajectory within 1 sec.

[0106] The variations of |x| from fl at the moments 5, 7, 9 are due to instant changes of the parameter R. In the case when the value R is known, it is easy to eliminate these variations completely by compensating control changes. However, we consider the case of rapid changes of R known to the control system in advance as rather exotic and because of that do not sophisticate our control algorithm.

[0107] In the 7^(th) experiment, the control objective was to track a given trajectory of the rotor, θ(t) = ∫₀^(t)y(s)  s,

[0108] (shown in FIG. 5) and to minimize least-square deviation of |x(t)| from β.

[0109] The parameters R, τ, β were assumed to be constant:

[0110] R=R_(nom), τ=0.5 τ_(nom), β=β_(nom).

[0111] It should be noted that the subject method was designed for other goals than position tracking. Because of that, we had to add some empirical control block for “fine tuning” of position. We can see in the table of FIG. 3 and the graph of FIG. 6, that the subject invention's harmonic control technique can handle this control objective, but doubtlessly its performance can be improved if it is modified specially for this problem.

[0112] Summarizing the results of experiments, we can conclude that our method demonstrated efficient, robust and accurate performance for all tested settings.

[0113] In conclusion, the subject invention's control method is fairly simple: it can be implemented by two harmonic signal generators and one switch. Due to this simplicity, a trajectory of unmeasurable state variable is easily predictable and motor parameters are identifiable.

[0114] The control provides global exponential stability of the closed-loop system. It is robust with respect to deviations of motor parameters if the load torque is negligible; it is shown that this is the only case when any static or field-oriented control can be robust for the given model.

[0115] “Harmonic Control” belongs to the discrete-time type of control methods; however it easily allows for continuous-type modification, which can be considered as a generalization of Indirect Field-Oriented Control. Thus the subject invention may be used for theoretical analysis of the latter method. The proposed approach can also be useful for design optimal control of induction motors. Finally, the experiments confirm accuracy, efficiency and robustness of the proposed “Harmonic Control” technique.

[0116] Although the invention has been disclosed in terms of a preferred embodiment, and modifications thereon, it will be understood that numerous additional variations and modifications could be made thereto without departing from the scope of the invention as defined in the following claims.

[0117] APPENDIX

[0118] Proof of Lemma 1.

[0119] Let us consider any trajectory of the system (1)-(2) satisfying (7). The limit set of this trajectory will be a trajectory of (1)-(2) as well. Let x(t), y(t), u(t) be system state, output and control respectively along this limit trajectory, t ∈ IR.

[0120] Obviously, (7) implies

x ²(t)≡β, y(t)≡0 for all t ∈ IR,   (26)

[0121] hence it follows from (1)-(2) that for any t ∈ IR

[0122] ${{u^{T}(t)}{x(t)}} = {{{\left( {2R} \right)^{- 1}\frac{}{t}{x^{2}(t)}} + {x^{2}(t)}} = \beta^{2}}$

u ^(T)(t)Jx(t)=y(t)+τ=τ.

[0123] For all t ∈ IR, the vectors x(t) and Jx(t) form a basis in IR², and we can decompose u(t) in this basis as $\begin{matrix} {{u(t)} = {{{\frac{u^{T}x}{x^{2}}x} + {\frac{u^{T}{Jx}}{x^{2}}{Jx}}} = {\left( {I + {\left( {\tau/\beta^{2}} \right)J}} \right){{x(t)}.}}}} & (27) \end{matrix}$

[0124] The function x(t) is differentiable, hence the function u(t) is differentiable too, and from (1),(27) we obtain: $\begin{matrix} \begin{matrix} {{u(t)} = {\left( {I + {\left( {\tau/\beta^{2}} \right)J}} \right){x(t)}}} \\ {= {R\left( {I + {\left( {\tau/\beta^{2}} \right){J\left( {{u(t)} - {x(t)}} \right)}}} \right.}} \\ {= {{R\left( {\tau/\beta^{2}} \right)}\left( {I + {\left( {\tau/\beta^{2}} \right)J}} \right){{{Jx}(t)}.}}} \end{matrix} & (28) \end{matrix}$

[0125] It follows from (26)-(28) that for all t ∈ IR

u ²(t)=β²+(τ/β)² , u ²(t)=(Rτ)²(β²(β²+(τ/β)²)/β⁴.   (29)

[0126] Besides, (26) implies that the limit trajectory x(t) can be either one point or a circle. In the former case

0=x(t)=R(u(t)−x(t)),

[0127] that is, u²(t)≡β². With (29) it yields τ=0.

[0128] Now let us choose any two trajectories of the system (1)-(2) determined by the parameters (R₁, τ₁) and (R₂, τ₂) accordingly such that condition (7) is satisfied for both. Consider limit sets of these trajectories. If both limit sets are points then τ₁=τ₂=0. Otherwise their intersection is not empty.

[0129] Let us fix any point which belongs to both limit sets and consider that trajectories of the system (1)-(2), beginning at this point and determined by the parameters (R₁, τ₁) and (R₂, τ₂) accordingly. Obviously, both trajectories lie in corresponding limit sets and, for this reason, satisfy (29). But, at least at the first instant, the control u=u(x,y) should be the same and so we obtain

β²+(τ₁/β)²=β²+(τ₂/β)²

[0130] thus, τ₁=τ₂. It follows that x (0), y (0) are the same for both trajectories, and we can conclude that u(0) must be the same too. By this way we obtain from (29) that

(R ₁τ₁)²(β²+(τ₁/β)²)/β⁴=(R ₂τ₂)²(β²+(τ₂/β)²)/β⁴.

[0131] hence R₁=R₂. Thus, the Lemma is proven.

[0132] Proof of Lemma 2.

[0133] It can be easily seen that on any limit trajectory of the system (1)-(2), (8)-(9) τ_(d)=const. Hence we get for a limit trajectory of this system:

u ²(t)=β²+(τd/β)² , u ²(t)=({circumflex over (R)}τd)²(β²+(τ/β)²)/β⁴.   (30)

[0134] On the other hand, the condition (29) is valid for any control locally stabilizing (1)-(2). Comparison of (30) with (29) yields that the control (8)-(9) can stabilize they system only if τ_(d)=τ, {circumflex over (R)}=R. Thus, the Lemma is proven.

[0135] Proof of Lemma 3.

[0136] The equations (15), (16) can be easily checked by differentiation.

[0137] Proof of Theorem 4. Let us denote ${U\left( {\omega,R} \right)} = {{\frac{1}{\sqrt{R^{2} + \omega^{2}}}\begin{bmatrix} R & \omega \\ {- \omega} & R \end{bmatrix}}.}$

[0138] According to (11),(14), change of u at “switch moment” t_(l) can be expressed as ${u\left( {t_{i} + 0} \right)} = {\frac{v_{i}}{v_{i - 1}}{U^{- 1}\left( {\omega_{i},\hat{R}} \right)}{U\left( {\omega_{i - 1},\hat{R}} \right)}{{u\left( {t_{i} - 0} \right)}.}}$

[0139] In combination with (15) it implies ${x_{i} = {{{x\left( t_{i} \right)} - {\frac{R}{\sqrt{R^{2} + \omega_{i}^{2}}}{U\left( {\omega_{i},R} \right)}{u\left( {t_{i} + 0} \right)}}} = {= {{{x\left( t_{i} \right)} - {\frac{R}{R^{2} + \omega_{i}^{2}}\frac{v_{i}}{v_{i - 1}}{U\left( {\omega_{i},R} \right)}{{U^{- 1}\left( {\omega_{i},\hat{R}} \right)}..{U\left( {\omega_{i - 1},\hat{R}} \right)}}{u\left( {t_{i} - 0} \right)}}} = {= {e^{- {R{({t - t_{i - 1}})}}}x_{i - 1 -}\frac{R}{\sqrt{R^{2} + \omega_{i - 1}^{2}}}\left( {{{V\left( {\omega_{i},\hat{R},R} \right)}..{V^{- 1}\left( {\omega_{i - 1},\hat{R},R} \right)}} - I} \right){U\left( {\omega_{i - 1},R} \right)}{u\left( {t_{i} - 0} \right)}}}}}}},$

[0140] where I is the identity matrix, ${V\left( {\omega,\hat{R},R} \right)} = {\frac{R\sqrt{{\hat{R}}^{2} + \omega^{2}}}{\hat{R}\sqrt{R^{2} + \omega^{2}}}{U\left( {\omega_{i},R} \right)}{{U^{- 1}\left( {\omega_{i},\hat{R}} \right)}.}}$

[0141] It is easy to check that, give (19), V=I+O (δ_(id)) hence

|x _(i) |<|x _(i−l) |e ^(−R(t−t) _(i−l) ⁾ O(δ_(id)).   (31)

[0142] Applying (3 1) repeatedly, we obtain

|x _(i) |<|x ₁ |e ^(−Rt) +O(δ_(id)).

[0143] The statement of Theorem now follows immediately from (15), (16).

[0144] Proof of Theorem 5. It follows from Lemma (3) and condition (22) that on the first “step” [t₁, t₂] the value |d−y| decreases quasilinearly as $\frac{\hat{R}v^{2}\omega_{0}}{R^{2} + \omega_{i}^{2}} > {\frac{{RR}_{\max}}{R_{\min}^{2}}\frac{{\hat{R}}_{0}^{2} + \omega_{0}^{2}}{R^{2} + \omega_{i}^{2}}\left( {\delta_{\tau} + \delta_{2}} \right)} > {\left( {\delta_{\tau} + \delta_{2}} \right).}$

[0145] Occasionally y(t) will reach d, therefore t₂<∞,

[0146] Let us rewrite (1) in the form: $\begin{matrix} {{\frac{}{t}\left( {x - u} \right)} = {{- {R\left( {x - u} \right)}} - u + {\xi_{1}.}}} & (32) \end{matrix}$

[0147] It follows immediately from (32),(6),(11),(21) that for any t≧t₂

|x(t)|−β|≦|x(t)−u(t)|≦

≦e^(−R(t−t) ₂ ⁾|x(t₂)|+∫_(t) ₂ ^(t)e^(−R(t−s))(u|+|ξ₁|)ds|

≦e^(−R(t−t) ₂ ⁾|x(t₂)−u(t₂)+(ω_(*)β+δ₁)/R.

[0148] Thus, the statement (23) is proven.

[0149] On the other hand, it is easy to derive from (32), (11), (21) the dynamics of the motor starting from the moment t₂:

x(t)−u(t)=e ^(−R(t−t) _(l) ⁾(x(t _(i))−u(t _(i)))−z _(i)(t)++e ^(−R(t−t) _(l) ⁾ z _(l)(t _(l))+∫^(t) _(t) _(l) e ^(−R(t−s))ξ₁(s)ds,

[0150] where for i≦2 ${z_{i}(t)} = {{\frac{\omega_{i}\beta}{R^{2} + \omega_{i}^{2}}\begin{bmatrix} {- R} & \omega_{i} \\ \omega_{i} & R \end{bmatrix}}\left\lbrack {\frac{\sin \left( {{\omega_{i}\left( {t - t_{i}} \right)} + \sigma_{i}} \right)}{\cos \left( {{\omega_{i}\left( {t - t_{i}} \right)} + \sigma_{i}} \right)}.} \right\rbrack}$

[0151] For any even i, we obtain from (3), (21), (22)

|y(t)−d|≦ε+δ ₃ , t ∈[t _(i) , t _(i+1)]. (33)

[0152] Now let us fix any odd i. If follows from (22) that ${{{- {{sign}\left( {{- {\hat{y}\left( t_{i} \right)}}} \right)}}{u^{T}(t)}{{Jz}_{i}(t)}} = {\frac{\omega*\beta^{2}R}{R^{2} + \omega_{*}^{2}} > > {\delta_{\tau} + \delta_{2} + {\beta\delta}_{1} + {\frac{1}{2}\frac{\omega*\beta^{2}R}{R^{2} + \omega_{*}^{2}}}}}},$

[0153] therefore any t ∈[t_(l), t_(i+1)]

sign(d−ŷ(t _(i)))y(t)≧sign(d−ŷ(t _(i)))u ^(T)(t)J(x(t _(i))−u(t _(i)))−δ_(τ)−δ₂≧

[0154] $\frac{\omega*\beta \quad R}{R^{2} + \omega_{*}^{2}} - {e^{- {R{({t - t_{i}})}}}{{u(t)}}\left( {{{{x(t)} - {u(t)}}} + {{z\left( t_{i} \right)}}} \right)} - \delta_{\tau} - \delta_{2} - {{\beta\delta}_{1}.}$

[0155] Recall that at the moment t_(l) the condition (33) is valid. Besides, starting from some moment,

|x(t)−u(t)<(2βω_(*)+δ₁)/R.

[0156] Thus for any odd i big enough and for any t ∈[t₁, t_(l+1)]

[0157] $\begin{matrix} {{{{y(t)} - d}} < {ɛ + \delta_{3} + {\left( {{3\beta^{2}\omega_{*}} + {\beta\delta}_{1}} \right)/R^{2}} - {\frac{1}{2}\frac{\omega_{*}\beta^{2}R}{R^{2} + \omega_{*}^{2}}t}}} & (34) \end{matrix}$

[0158] The statement (24) easily follows from (33),(34). Thus the Theorem is proven. 

1. A method for controlling an induction motor comprising the steps of: a) measuring the velocity of a rotor of an induction motor to be controlled; b) estimating a value of the resistance of said rotor and a value of the load torque of said motor from said rotor velocity; c) employing said estimated values of resistance and load torque to generate parameter values for controlling first and second harmonic signal generators; d) supplying a control signal to said motor from said first harmonic signal generator while updated parameters are supplied to said second harmonic signal generator; e) supplying a control signal to said motor from said second harmonic signal generator while updated parameters are supplied to said first harmonic signal generator; and f) repeating steps d) and e) to control operation of said motor. 